perm filename XXX.B[BNF,JRA] blob sn#024552 filedate 1973-02-14 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00002 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002	
 00007 ENDMK
⊗;

NIL 

<ST>    ::=<F1>;				=>*

<F1>    ::=[<FLIST>]				=>(COND.FLIST)
	::=T					=>T
	::=<F2>					=>*

<FLIST> ::=<F1>'→<F1A>;<FLIST>			=>((F1 F1A).FLIST)
	::=<F1>'→<F1A>				=>((F1 F1A))

<F1A>   ::=<F1>					=>*

<F2>    ::=<F3>					=>*
	::=<F2>∨<F3>				=>(OR F2 F3)

<F3>    ::=<F4>					=>*
	::=<F3>∧<F4>				=>(AND F3 F4)

<F4>    ::=(<F1>)				=>*
	::=¬<F4>				=>(NOT F4)
	::=<FAL><F1>				=>(PROG
						   (L)
						   (SETQ L(DOMC))
						   A
						   (SETQ FAL(CAR L))
						   (COND((NOT F1)(RETURN NIL)))
						   (SETQ L(CDR L))
						   (COND(L(GO A)))
						   (RETURN T))
	::=<TEL><F1>				=>(PROG
						   (L)
						   (SETQ L(DOMC))
						   A
						   (SETQ TEL(CAR L))
						   (COND(F1(RETURN T)))
						   (SETQ L(CDR L))
						   (COND(L(GO A)))
						   (RETURN NIL))
	::=<FAT><F1>				=>(PROG
						   (%T)
						   (SETQ %T(DOML))
						   A
						   (SETQ FAT(CAR %T))
						   (COND((NOT F1)(RETURN NIL)))
						   (SETQ %T(CDR %T))
						   (COND(%T(GO A)))
						   (RETURN T))
	::=<TET><F1>				=>(PROG
						   (%T)
						   (SETQ %T(DOML))
						   A
						   (SETQ TET(CAR %T))
						   (COND(F1(RETURN T)))
						   (SETQ %T(CDR %T))
						   (COND(%T(GO A)))
						   (RETURN NIL))
	::=<PREDIC>				=>PREDIC

<FAL>   ::=∀<VARL>				=>VARL

<TEL>   ::=∃<VARL>				=>VARL

<FAT>   ::=∀<VART>				=>VART

<TET>   ::=∃<VART>				=>VART

<VARL>  ::=L1					=>L1
	::=L2					=>L2
	::=L3					=>L3
	::=L4					=>L4

<VART>  ::=T1					=>T1
	::=T2					=>T2
	::=T3					=>T3
	::=T4					=>T4

<VARC>  ::=C					=>C
	::=C1					=>C1
	::=C2					=>C2

<PREDIC>::=@<LISPR>				=>LISPR
	::=<TERM0><OPR><TERM>			=>(OPR TERM0 TERM)

<TERM0> ::=<TERM>				=>*

<LISPR> ::=<ATOM>				=>ATOM
	::=(<LISPL>)				=>LISPL

<LISPL> ::=<LISPR><LISPL>			=>(LISPR.LISPL)
	::=					=>NIL

<OPR>   ::==					=>EQ
	::=≠					=>NEQ
	::=<					=>LESSP
	::=>					=>GREATERP
	::=ε					=>MATCHER

<TERM>  ::=∂(<VARL>)				=>(DEPTH(LIST VARL))
	::=∂(<VART>)				=>(DEPTH1(LIST VART))
	::=∂(<VARC>)				=>(DEPTH(CDR VARC))
	::=β(<VARC>)				=>(TREEDEP VARC)
	::=<VARL>				=>VARL
	::=<VART>				=>VART
	::=<VARC>				=>VARC
	::=TR(<VARC>)				=>(TREE VARC)
	::=α(<VARC>)				=>(LENGTH(CDR VARC))
	::=α(<VART>)				=>(NOSYM VART)
	::=α(<VARL>)				=>(NOSYM VARL)
	::=+					=>%PL
	::=-					=>%NG
	::=⊂<MATCHLIST>⊃			=>(AND.MATCHLIST)
	::=⊃<MATCHLIST>⊂			=>(OR.MATCHLIST)
	::=<NUMBER>				=>NUMBER
	::=<MATCH>				=>MATCH

<MATCHLIST>
	::=<MATCH>,<MATCHLIST>			=>(MATCH.MATCHLIST)
	::=<MATCH>				=>(MATCH)

<MATCH> ::=<NOT1><PRED>				=>(%NG.PRED)
	::=<NOT1><PREDLET>			=>(%NG PREDLET)
	::=<ID>[<VARLIST>]			=>(CL(ID.VARLIST))
	::=<PRED>				=>PRED
	::=<PREDLET>				=>(PREDLET)
	::=<TM>					=>TM
	::=<FNLET>				=>(FNLET)
	::=<ID>					=>(CL ID)
	::=<NUMBER>				=>(CL NUMBER)


END

NIL